<?php
namespace
{
	
// 公共函数写这里，例如检查函数、过滤函数、权限检查函数
// 在自动化输入检查之后执行
// 可以直接使用input里边的变量
function uid()
{
    return $_SESSION['uid'];
}
function uname()
{
    return $_SESSION['uname'];
}
function now()
{
    return date("Y-m-d H:i:s");
}
function lazyrest_auth_check()
{
    if( $_SESSION['level'] < 1 )
    {
        send_error( 'AUTH' , '当前权限不足以访问本接口' );
        exit;
    }
}

			$GLOBALS['lpconfig']['database']['dsn'] = 'mysql:host=localhost;port=3306;dbname=lyrest;charset=UTF8';
		$GLOBALS['lpconfig']['database']['user'] = 'root';
		$GLOBALS['lpconfig']['database']['password'] = 'root';
	}

namespace Lazyphp\Controller
{
	class LazyRestController extends AuthedController
	{
		public function __construct()
	    {
	        	        $noauth[] = 'user_lcadd_1476426905644';
	        	        $noauth[] = 'user_lccustom_1476504772636';
	            
	        if( function_exists('lazyrest_auth_check') )
	        {
	        	if( !in_array( g('a') , $noauth ) )
	        	{
					$this->auth();
					lazyrest_auth_check();
	        	}
	        }
	    }

	    		/**
* 向数据表user添加记录
* @ApiDescription(section="user", description="账号注册")
* @ApiLazyRoute(uri="/account/reg",method="GET|POST")
* @ApiParams(name="email", type="string",nullable=false,description="邮箱", check="check_not_empty", cnname="邮箱")
* @ApiParams(name="name", type="string",nullable=false,description="用户名", check="check_not_empty", cnname="用户名")
* @ApiParams(name="password", type="string",nullable=false,description="密码", check="check_not_empty", cnname="密码")
* @ApiReturn(type="object", sample="{'code': 0,'message': 'success'}")
*/
 function user_lcadd_1476426905644( $email,$name,$password )
{
	// 输入函数过滤
							
	// 输入控制代码
	
// 在自动化输入检查之后执行
// 可以直接使用input里边的变量
$password = sha1($password);


	// 检查唯一
		if( get_var("SELECT COUNT(*) FROM `user` WHERE `email` = '" . s( $email ) . "'") > 0 )
	{
		return send_error('INPUT' , '邮箱字段不能重复');
	}
			 	
	

	// 拼接SQL
		
						$pre_field[] = '`email`';
		$post_field[] = "'" . s( $email ) . "'";
				
				
		
						$pre_field[] = '`name`';
		$post_field[] = "'" . s( $name ) . "'";
				
				
		
						$pre_field[] = '`password`';
		$post_field[] = "'" . s( $password ) . "'";
				
				
	
	// 业务逻辑控制代码
	
// 在$sql拼接之前，可以对其组成数组进行修改
// 在UPDATE、DELETE操作中，可使用$last对原始记录进行检查


	$sql = "INSERT INTO `user` ( " . join( ' , ' , $pre_field ) . " ) VALUES ( " . join( ' , ' , $post_field ) . " )  ";

	run_sql( $sql );
	$theid = last_id();

			$out_field[] = '`level`';
				$out_field[] = '`password`';
				$out_field[] = '`name`';
				$out_field[] = '`email`';
				$out_field[] = '`id`';
			

	$return_item = get_line("SELECT " . join( ' , ' , $out_field ) . " FROM `user` WHERE `id` = '" . intval( $theid ) . "' LIMIT 1");

	// 输出控制代码
	
// 在return之前运行，可以对$return_item 进行修改

	if( $return_item )
	{
		return render_json( $return_item );	
	} 
	else
	{
		return send_error('DATABASE' , '数据插入失败');
	};


}

	    
	    
		
	    
	    		/**
* 自定义查询数据表user的记录
* @ApiDescription(section="user", description="获取权限")
* @ApiLazyRoute(uri="/account/token",method="POST")
* @ApiParams(name="email", type="string",nullable=false,check="check_not_empty", ,description="邮箱", cnname="邮箱")
* @ApiParams(name="password", type="string",nullable=false,check="check_not_empty", ,description="密码", cnname="密码")
* @ApiReturn(type="object", sample="{'code': 0,'message': 'success'}")
*/
 function user_lccustom_1476504772636( $email,$password )
{
	
	
	// 输入过滤
		
		
				$email = ( $email );
		
		
		
				$password = ( $password );
		
	
	// 输入控制代码
	


	
	// 业务逻辑控制代码
	
    if($user = get_line("SELECT * FROM `user` WHERE `email` = '".s($email)."'"))
    {
        if($user['password'] == sha1($password))
        {
            session_start();
            $_SESSION['uid'] = $user['id'];
            $_SESSION['uname'] = $user['name'];
            $_SESSION['level'] = $user['level'];
            
            return render_json(session_id());
        }
        else
        {
            return send_error('PATH','wrong password!!!');
        }
    }
    else
    {
        return send_error('INPUT','wrong email');
    }


	// 输出控制代码
	
// 在return之前运行，可以对$return_item 进行修改

	
}

	    		/**
* 自定义查询数据表code的记录
* @ApiDescription(section="code", description="权限测试")
* @ApiLazyRoute(uri="/token/add",method="POST")
* @ApiParams(name="code", type="string",nullable=true,check="", ,description="代码", cnname="代码")
* @ApiParams(name="name", type="string",nullable=true,check="", ,description="用户名", cnname="用户名")
* @ApiParams(name="uid", type="string",nullable=false,check="", ,description="会话id", cnname="会话id")
* @ApiParams(name="uname", type="string",nullable=false,check="", ,description="会话名", cnname="会话名")
* @ApiParams(name="create_at", type="string",nullable=false,check="", ,description="创建时间", cnname="创建时间")
* @ApiReturn(type="object", sample="{'code': 0,'message': 'success'}")
*/
 function code_lccustom_1476506727479( $code,$name,$uid,$uname,$create_at )
{
	
	
	// 输入过滤
		
			if( isset( $_REQUEST['code'] ) && !check_not_empty( $code ) )
	{
		return send_error( 'INPUT' , '字段代码(code)格式错误' );
	}
	
				$code = ( $code );
		
		
			if( isset( $_REQUEST['name'] ) && !check_not_empty( $name ) )
	{
		return send_error( 'INPUT' , '字段用户名(name)格式错误' );
	}
	
				$name = ( $name );
		
		
		
				$uid = uid();
		
		
		
				$uname = uname();
		
		
		
				$create_at = now();
		
	
	// 输入控制代码
	
// 在自动化输入检查之后执行
// 可以直接使用input里边的变量


	
	// 业务逻辑控制代码
	
// 在$sql拼接之前，可以对其组成数组进行修改
// 在UPDATE、DELETE操作中，可使用$last对原始记录进行检查


	// 输出控制代码
	
// 在return之前运行，可以对$return_item 进行修改

	
}

	    	    
	}
}

